As more people use their computers for more functions in their lives (e.g., storing private data, banking, shopping, etc.), the need for improved computer security measures increases. Unauthorized access to a computer may be prevented using a variety of protection schemes such as magnetic key cards, passwords, etc.
However, most of these computer protection schemes rely, at least in part, on software running on the protected computer. For example, a magnetic key card reader may require a device driver and an input routine to be executed by the computer. This device driver and input routine must be loaded when the computer is powered up.
A computer protection scheme that relies on software running on the protected computer is susceptible to “spoofing” and other deceptive software attacks. For example, a dialog box asking a user for a password may actually be generated by a virus program designed to collect the password for disclosure to an unauthorized user.
Prior to loading a full operating system with a graphical user interface (e.g., Microsoft Windows®), most computers are capable of presenting a text-based user interface and/or a limit graphics interface in a pre-boot environment. For example, most DOS (Disk Operating System) based systems enter a text-based environment if the F2 key is pressed during start up.
In order to protect this pre-boot environment, the user may be required to enter a basic input/output system (BIOS) password. Frequently, people use the same password for multiple purposes. In such an instance, a disclosure of the BIOS password may open a user up to additional unauthorized access such as bank accounts, etc.